#ifndef DEVFS_H
#define DEVFS_H

#include "fs/fs.h"
#include "fs/file.h"
#include <sys/stat.h>

// 设备文件系统中某个设备的类型
typedef struct _devfs_type_t
{
    const char *name;       // tty设备、disk设备，name值为tty、disk
    int dev_type;           // 设备类型<->主设备号
    int file_type;          // tty类型的文件、磁盘类型的文件
} devfs_type_t;


int devfs_mount(struct _fs_t *fs, int major, int minor);
void devfs_unmount(struct _fs_t *fs);
int devfs_open(struct _fs_t *fs, const char *path, file_t *file);
int devfs_read(char *buf, int size, file_t *file);
int devfs_write(char *buf, int size, file_t *file);
void devfs_close(file_t *file);
int devfs_seek(file_t *file, uint32_t offset, int dir);
int devfs_stat(file_t *file, struct stat *st);

#endif